草庐IT

c++ - ofstream 指针的 vector

全部标签

c++ - 声明一个非常大的整数 vector ?

有没有一种方法可以在C++中执行此操作而不会在运行时崩溃?现在我宣布vector>myvec(veclength);我怎样才能(正确地)将速度调到尽可能高的水平?即使在10^7时,当我应该有足够的计算机内存时它也会崩溃。 最佳答案 这应该占用大约250MiB的空间1(或更少,取决于架构)所以内存绝对不是这里的问题,max_size也不应该,其数量级为1017(≈264∕8+8+8)。我应该提到,我通过查看GCC的libstdc++和LLVM的libc++中std::vector的实现,并通过在实时系统上进行测试,证实了这些计算。计算

c++ - 任意类型的映射 vector

我需要存储不同类型的列表vector,每个vector都由一个字符串标识符引用。现在,我使用std::map和std::string作为键,boost::any作为它的值(示例实现postedhere)。尝试在所有存储的vector上运行一个方法时,我遇到了困难,例如:std::map::iteratorit;for(it=map_.begin();it!=map_.end();++it){it->second.reserve(100);//FAIL:referstoboost::anynotstd::vector}我的问题:是否可以将boost::any转换为任意vector类型以便

c++ - Python Ctypes 崩溃调用 C++ 函数的 C 包装器

我正在尝试使用PythonCtypes来连接已发布的(闭源)C++库。我(尝试)编写了一个基本的C风格函数包装器来构造C++vector风格对象并调用C++例程。我还(尝试)编写了一个基本的python脚本来加载共享库。除了调用C++例程的行外,一切正常:***glibcdetected***python:free():invalidnextsize(fast):0x0000000001e73c00***这是文件,不幸的是我不能分享标题,但如果需要我可以写一些类似的东西......gaumixmod.cpp:#include"nr3.h"#include"cholesky.h"#inc

c++ - 从源代码项目中提取所有功能的工具

我正在尝试构建一个可用工具列表,用于解析完整的源代码包并将所有函数/方法提取为单独的部分。我的目标是运行一个工具或脚本,立即知道包中有多少函数,并根据需要轻松地逐个检查完整的分段函数集。现在我正在使用NiCad克隆检测工具,其中包括一个用TXL(一种树转换语言)编写的提取脚本。每个函数都被提取出来并作为一个唯一的实体存储在XML文档中,因此处理函数列表非常方便。NiCad包括用于C、Java和Python的提取工具。我最关心的是C,但也很高兴有其他可用的东西。我们还没有设置C++解析器-这会很方便。我还使用了Doxygen,它具有识别调用图的额外好处。虽然这些文件中有很多标记,因此解析

c# - 将 C++ 函数指针设置为 C# 委托(delegate)

我有一个非托管的C++应用程序作为COM客户端和一个C#COM服务器。现在我希望COM服务器可以调用C++函数。C#:[ClassInterface(ClassInterfaceType.AutoDual)]publicclassSomeType{[UnmanagedFunctionPointer(CallingConvention.Cdecl)]publicdelegatevoidDeleCallBack(stringinfo);publicDeleCallBackCallBack;publicvoidSetCallBack(refIntPtrptr){CallBack=(DeleC

c++ - 如何将包含不同语言的 wstring 行写入文件?

我从22个不同语言的文件中分离出不同的部分,并使它们成为一个wstring行,如下所示:wstringwstr_line=L"\"IDS_TOAST_ECOON\",\"ecoModeisturnedOn.\",\"ecoモードをオンにしました。\",\"Režimecojezapnutý.\",\"Økoindstillingeneraktiveret\"..."我用wofstream把wstr_line放到一个文件里,但是这行在日文部分结束了(\"ecomoードをオンニしました。\")。如果我设置wfout.imbue("chs");该行在捷克语部分结束(\"Režimecojez

c++ - 取消 pthread_cond_wait() 挂起与 PRIO_INHERIT 互斥锁

2012年4月10日更新:Fixedbylibcpatch我在pthread_cond_wait中取消线程时遇到问题,将互斥锁与PTHREAD_PRIO_INHERIT一起使用属性集。不过,这只发生在某些平台上。以下最小示例演示了这一点:(使用g++.cpp-lpthread编译)#include#includepthread_mutex_tmutex;pthread_cond_tcond;voidclean(void*arg){std::cout每次我运行它,main()卡在pthread_join().gdb回溯显示如下:Thread2(Thread0xb7d15b70(LWP25

c - C 如何计算 sin() 和其他数学函数?

我一直在仔细研究.NET反汇编和GCC源代码,但似乎无法在任何地方找到sin()和其他数学函数的实际实现...它们似乎总是引用其他东西。谁能帮我找到他们?我觉得C运行的所有硬件都不太可能支持硬件中的触发函数,所以必须有一个软件算法某处,对吧?我知道可以计算函数的几种方法,并且已经编写了自己的例程来使用泰勒级数计算函数来获得乐趣。我很好奇真实的生产语言是如何做到这一点的,因为我的所有实现总是慢几个数量级,尽管我认为我的算法非常聪明(显然它们不是)。 最佳答案 在GNUlibm中,sin的实现是系统相关的。因此,您可以在sysdeps的

c++ - OpenSSL:AES CCM 256 位大文件加密 block :这可能吗?

我正在执行一项使用AESCCM模式(256位key长度)加密大文件的任务。其他用于加密的参数是:标签大小:8字节iv大小:12字节因为我们已经在使用OpenSSL1.0.1c,所以我也想用它来完成这项任务。文件的大小事先并不知道,它们可能非常大。这就是为什么我想按block读取它们并使用EVP_EncryptUpdate单独加密每个block,直到文件大小。不幸的是,仅当整个文件一次加密时,加密对我有效。如果我尝试多次调用它,我会从EVP_EncryptUpdate或奇怪的崩溃中得到错误。我使用gcc4.7.2在Windows7和UbuntuLinux上测试了加密。我找不到有关Open

c++ - boost:python 传递一个指向指针的指针作为参数

首先,我不是Python程序员,所以请原谅我的愚蠢错误。在C++中,我有一个来自MyClass的公共(public)方法,它动态地创建一个图像并返回它的大小。intMyClass::getImg(uchar*uimg[]){intsize=variable_size;*_uimg=newuchar[size];memcpy(*_uimg,imageOrigin->data(),size);uimg=_uimg;returnsize;}还有boost:python:BOOST_PYTHON_MODULE(mymodule){class_("MyClass").def("getImg",&